Creating A Non-Fungible Token With A Smart Contract